<?php

/*
  ============================================================
  =    ING. Juan M. Carrizalez 0412-7449583 AGROPATRIA C.A   =
  ============================================================
  =                SISTEMA VEHICULOS CAKEPHP 1.2             =
  ============================================================
 */

class AsignacionesController extends AppController {

    var $name = 'Asignaciones';
    var $uses = array('Bitacora', 'Mensaje', 'Usuario', 'Uso', 'Vehiculo', 'Asignacion', 'Funcionario','Marca');
    var $helpers = array('Html', 'Form', 'Ajax', 'Javascript', 'Cargar');
    var $layout = "ajax";
    var $paginate = array('limit' => 15);
    var $modelop = 'Asignacion';

    /*
    function beforeFilter() {
        $this->validar();
    }
*/
    function listado($donde = null, $busq = null) {

        if ($busq != null)
            $this->buscador($donde, $busq);
        else
       //     $this->ftodo($this->modelop);
        
     // $data=$this->Asignacion->query('SELECT funcionario_id, vehiculo_id FROM sv_asignaciones WHERE estado=1 GROUP BY funcionario_id, vehiculo_id ORDER BY funcionario_id, vehiculo_id ASC;');    
     // print_r($data);
     // echo $data[0]['Asignacion']['funcionario_id'];
     // $this->set('data', $data);   
        $this->ftodo('Funcionario','asignado',1);
        
        $this->set('asignacion', $this->all($this->modelop,1));
        $this->set('donde', $donde);
        $this->set('busq', $busq);
   
    }
    function mini_buscador($busqueda=null, $donde = null, $busq = null) {
        
             echo"<script type=\"text/javascript\" language=\"javascript\">
			document.getElementById('mensaje_td_mini').style.display='none';
			document.getElementById('mensaje_td_mini_2').style.display='block';
     		        </script>";
        
        
        //mensaje_td_mini
       // echo $busqueda.'<>'. $busq.'<>'.$donde;
                
        $valor = $this->rephp($busqueda);

            if($busqueda!=null){
            $modelo = 'Funcionario';
            $campos = $this->$modelo->query("SELECT * FROM information_schema.columns WHERE table_name = 'sv_" . $this->$modelo->useTable . "'");
            $todo = '';
            for ($i = 0; $i < count($campos); $i++) {

                $model = $this->$modelo->relaccion;
                if (isset($model[$i])) {
                  if($model[$i]=='Vehiculo'){
                    $camds='placa';  
                  }
                  else{
                    $camds='nombre';  
                  }
                    $model[$i]; $todo.='"sp_ascii(' . $model[$i] . '.'.$camds.')' . '"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
                if (in_array($campos[$i][0]['column_name'], $this->$modelo->busqueda)) {
                    $todo.='"sp_ascii(' . $modelo . '.' . $campos[$i][0]['column_name'] . ')"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
            }
            $tod = substr($todo, 0, -3);
            $condicion = array("or" => array($tod));
            $data = $this->$modelo->find('all', array('conditions' => $condicion, 'order' => "$modelo.id", 'limit'=>"10"));
            //print_r($data);
            $this->set('paginador', 'vacio');
            $this->set('data', $data);
            $this->set('donde', $donde);
            $this->set('busq', $busq);
            $this->set('busqueda', $valor);
         //   echo $valor;
    
            }
            else{
              $this->set('data', null);   
               $this->set('paginador', 'vacio');
            }
         
	}
        function mini_agregado($id, $busqueda=null, $donde=null, $busq=null ) {

          
        $this->script('veh_bloq_2', 'veh_bloq_1'); //(1,0)
            
            
         //  echo $id.'<>'.$busqueda;
            $data = $this->Funcionario->find('first', array('conditions' => array("Funcionario.id" => $id), 'order' => "Funcionario.id"));

            $this->set('data', $data);
            $this->set('donde', $donde);
            $this->set('busq', $busq);
            $this->set('busqueda', $busqueda);
     
	}
       function mini_buscador_b($id=null, $busqueda=null, $donde = null, $busq = null) {
       // echo $busqueda.'<>'. $busq.'<>'.$donde;
        $this->script('veh_bloq_1', 'veh_bloq_2'); //(1,0)     
        $this->script('mensaje_td_mini_veh', 'vehg'); //(1,0)   
        
        
        $valor = $this->rephp($busqueda);

            if($busqueda!=null){
            $modelo = 'Funcionario';
            $campos = $this->$modelo->query("SELECT * FROM information_schema.columns WHERE table_name = 'sv_" . $this->$modelo->useTable . "'");
            $todo = '';
            for ($i = 0; $i < count($campos); $i++) {

                $model = $this->$modelo->relaccion;
                if (isset($model[$i])) {
                  if($model[$i]=='Vehiculo'){
                    $camds='placa';  
                  }
                  else{
                    $camds='nombre';  
                  }
                    $model[$i]; $todo.='"sp_ascii(' . $model[$i] . '.'.$camds.')' . '"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
                if (in_array($campos[$i][0]['column_name'], $this->$modelo->busqueda)) {
                    $todo.='"sp_ascii(' . $modelo . '.' . $campos[$i][0]['column_name'] . ')"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
            }
            $tod = substr($todo, 0, -3);
            $condicion = array("or" => array($tod));
            $data = $this->$modelo->find('all', array('conditions' => $condicion, 'order' => "$modelo.id", 'limit'=>"10"));
            //print_r($data);
            $this->set('paginador', 'vacio');
            $this->set('data', $data);
            $this->set('donde', $donde);
            $this->set('busq', $busq);
            $this->set('busqueda', $valor);
        //   echo $valor;
    
            }
            else{
              $this->set('data', null);   
               $this->set('paginador', 'vacio');
            }
         
	}
        function mini_buscador_veh($busqueda=null, $donde = null, $busq = null) {

            
            
     
            
          //$asig =  $this->allcon('Asignacion', 1,$id,$campo);
            
       //  $asig = $this->Asignacion->find('list', array('fields' => array("Asignacion.id", "Asignacion.vehiculo_id"), 'conditions' => array("Asignacion.estado" => 1), 'order' => "Asignacion.id"));  
          
            
          
   
            
            
           $asig = $this->Asignacion->find('all', array('conditions' => array("Asignacion.estado"=>1), 'order' => "Asignacion.id"));
             
          
           
           
           
           
                 $campo = ''; 
          for ($i = 0; $i < count($asig); $i++) {
           //   echo $i;
                $campo .= $asig[$i]['Asignacion']['vehiculo_id'].", ";
                
            }
           // print_r($veharray);
            /*
         
            $campo='';
            foreach($veharray as $valor){
                $campo .= $valor.", ";
            }
         */   
           
           
          //echo  $asig[0]['Asignacion']['vehiculo_id'];
          
          
   
           /*
            
            
  
           */
           
             
            // print_r($asig);
            
             $this->script('vehg', 'mensaje_td_mini_veh'); //(1,0)   
             $this->script('mensaje_td_mini_veh_2', null); //(1,0)   

            $valor = $this->rephp($busqueda);

            if($busqueda!=null){
            $modelo = 'Vehiculo';
            $campos = $this->$modelo->query("SELECT * FROM information_schema.columns WHERE table_name = 'sv_" . $this->$modelo->useTable . "'");
            $todo = '(';
            for ($i = 0; $i < count($campos); $i++) {

                $model = $this->$modelo->relaccion;
                if (isset($model[$i])) {
                  if($model[$i]=='Vehiculo'){
                    $camds='placa';  
                  }
                  else{
                    $camds='nombre';  
                  }
                    $todo.='"sp_ascii(' . $model[$i] . '.'.$camds.')' . '"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
                if (in_array($campos[$i][0]['column_name'], $this->$modelo->busqueda)) {
                    $todo.='"sp_ascii(' . $modelo . '.' . $campos[$i][0]['column_name'] . ')"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
            }
            $tod = substr($todo, 0, -3);
            
                     
            $campo = substr($campo, 0, -2);
            //echo "AQUI: $campo<br/><br/><br/><br/><br/>";
            $tod.=') AND "Vehiculo.id" not in' . " (" .$campo. ") ";
           // echo $tod;
            
            $condicion = array("or" => array($tod));
            $data = $this->$modelo->find('all', array('conditions' => $condicion, 'order' => "$modelo.id", 'limit'=>"10"));
            //print_r($data);
            $this->set('paginador', 'vacio');
            $this->set('data', $data);
            $this->set('donde', $donde);
            $this->set('busq', $busq);
            $this->set('busqueda', $valor);
        //   echo $valor;
    
            }
            else{
              $this->set('data', null);   
               $this->set('paginador', 'vacio');
            }
    
	}
    
    function mini_agregado_veh($id, $busqueda=null, $donde=null, $busq=null ) {

                     
                 
                 $data = $this->Session->read('nombrex'); 
                 $data[] = $id; 
                 $this->Session->write('nombrex', $data); 
    
                /* 
                  $this->Session->delete('nombrex');
                 $this->Session->destroy('nombrex');
		*/
        
        
        
        
        
            // echo $id.'<>'.$busqueda;
            $vehiculo = $this->Vehiculo->find('first', array('conditions' => array("Vehiculo.id" => $id), 'order' => "Vehiculo.id"));

            $this->set('vehiculo', $vehiculo);
            $this->set('donde', $donde);
            $this->set('busq', $busq);
            $this->set('busqueda',$busqueda);
   /*
            $valor = $this->rephp($busqueda);

            if($busqueda!=null){
            $modelo = 'Vehiculo';
            $campos = $this->$modelo->query("SELECT * FROM information_schema.columns WHERE table_name = 'sv_" . $this->$modelo->useTable . "'");
            $todo = '(';
            
            for ($i = 0; $i < count($campos); $i++) {

                $model = $this->$modelo->relaccion;
                if (isset($model[$i])) {
                  if($model[$i]=='Vehiculo'){
                    $camds='placa';  
                  }
                  else{
                    $camds='nombre';  
                  }
                    $todo.='"sp_ascii(' . $model[$i] . '.'.$camds.')' . '"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
                if (in_array($campos[$i][0]['column_name'], $this->$modelo->busqueda)) {
                    $todo.='"sp_ascii(' . $modelo . '.' . $campos[$i][0]['column_name'] . ')"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
                
            }
            $tod = substr($todo, 0, -3);
            $campo='';
            foreach($_SESSION['nombrex'] as $valor){
                $campo .= $valor.", ";
            }
            $campo = substr($campo, 0, -2);
            //echo "AQUI: $campo<br/><br/><br/><br/><br/>";
            $tod.=') AND "Vehiculo.id" not in' . " (" .$campo. ") ";
           // echo $tod;
            
            $condicion = array("or" => array($tod));
            $data = $this->$modelo->find('all', array('conditions' => $condicion, 'order' => "$modelo.id", 'limit'=>"10"));
            //print_r($data);
            $this->set('paginador', 'vacio');
            $this->set('data', $data);
            $this->set('donde', $donde);
            $this->set('busq', $busq);
            $this->set('busqueda', $valor);
        //   echo $valor;
    
            }
            else{
              $this->set('data', null);   
               $this->set('paginador', 'vacio');
            }
            
            
            
            $vehiculo = $this->Vehiculo->find('all', array('conditions' => array('"Vehiculo.id" in' . " (" .$campo. ") ","$modelo.estado" => 1), 'order' => "Vehiculo.id","limit"=>20));
             
            $this->set('vehiculo', $vehiculo);   
         */   
            
            
            
            
            
            
            
            
            
        
    }
        
    function mini_buscador_veh_b($id=null, $busqueda=null, $donde = null, $busq = null) {
        
        
       
        
       // echo $busqueda.'<>'. $busq.'<>'.$donde;
        $this->script('veh_bloq_1', 'veh_bloq_2'); //(1,0)     
        $this->script('mensaje_td_mini_veh', 'vehg'); //(1,0)   
        
        
        $valor = $this->rephp($busqueda);

            if($busqueda!=null){
            $modelo = 'Vehiculo';
            $campos = $this->$modelo->query("SELECT * FROM information_schema.columns WHERE table_name = 'sv_" . $this->$modelo->useTable . "'");
            $todo = '';
            for ($i = 0; $i < count($campos); $i++) {

                $model = $this->$modelo->relaccion;
                if (isset($model[$i])) {
                  if($model[$i]=='Vehiculo'){
                    $camds='placa';  
                  }
                  else{
                    $camds='nombre';  
                  }
                    $model[$i]; $todo.='"sp_ascii(' . $model[$i] . '.'.$camds.')' . '"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
                if (in_array($campos[$i][0]['column_name'], $this->$modelo->busqueda)) {
                    $todo.='"sp_ascii(' . $modelo . '.' . $campos[$i][0]['column_name'] . ')"' . " ilike sp_ascii('%" . $valor . "%') OR ";
                }
            }
            $tod = substr($todo, 0, -3);
            $condicion = array("or" => array($tod));
            $data = $this->$modelo->find('all', array('conditions' => $condicion, 'order' => "$modelo.id", 'limit'=>"10"));
            //print_r($data);
            $this->set('paginador', 'vacio');
            $this->set('data', $data);
            $this->set('donde', $donde);
            $this->set('busq', $busq);
            $this->set('busqueda', $valor);
        //   echo $valor;
    
            }
            else{
              $this->set('data', null);   
               $this->set('paginador', 'vacio');
            }
         
	}

    
    
    function pdf_todo() {
        $this->ftodo($this->modelop);
    }

    function modificar($id = null, $donde = null, $busq = null) {
        
        
        /*
         * AGREGADO
         */

            $asignado = $this->Asignacion->find('all', array('conditions' => array("Asignacion.funcionario_id" => $id,"Asignacion.estado" => 1)));
            $campo = array(); 
          for ($i = 0; $i < count($asignado); $i++) {
           //   echo $i;
                $campo[] = $asignado[$i]['Asignacion']['vehiculo_id'];
                
            }   
            
         // print_r($campo);// = substr($campo, 0, -2);
           
           $vehiculo=$this->Vehiculo->find('all', array('conditions' => array("Vehiculo.id" => $campo,"Vehiculo.estado" => 1)));

           $this->set('vehiculo', $vehiculo);
           $this->set('busqueda',$busqueda);
           $this->set('donde', $donde);
           $this->set('busq', $busq);
           $this->set('asignado', $asignado);
           $this->funo('Funcionario', $id);
        
        
        
        
     //   $this->script($this->div('v'), $this->div('l')); //(1,0)
    }

    function nuevo($donde = null, $busq = null) {
 
        
        $this->rif('P');
        $this->set('donde', $donde);
        $this->set('busq', $busq);
        $this->script($this->div('v'), $this->div('l')); //(1,0)
        
        
        $this->set('data_vehiculo', $this->ftodo('Vehiculo',null,null,true));
        $this->ftodo('Funcionario');
        
 
        
        
        
        
        
        
        
    }

    function activar($id, $donde = null, $busq = null) {
        $valor = $this->consulta($id, $this->modelop, 'estado');
        $this->actualizar_estado($id, $this->modelop, $valor);
        $this->set('donde', $donde);
        $this->set('busq', $busq);
        if ($busq != null)
            $this->buscador($donde, $busq);
        else {
            $this->ftodo($this->modelop);
            $this->listado();
            $this->render('listado');
        }
    }

    function existe($a) {
        $valor = $this->Asignacion->find('first', array('conditions' => array("Asignacion.vehiculo_id" => "$a","Asignacion.estado"=>1)));
        if ($valor[$this->modelop]['vehiculo_id'] == $a)
            return true;
        //else if ($valor[$this->modelop]['nombre'] != '')
        //    return true;
        else
            return false;
    }

    function guardar() {
        $d = $this->data;
        $cont = $this->name;
        $funt = 'guardar';
        $modelo = $this->modelop;
        /*
        echo '<br />'.$d['id_funcionario_asig'];
        echo '<br />'.$d['id_vehiculo_asig'];
        echo '<br />'.$d['fecha_entrega'];
        echo '<br />'.$d['fecha_devolucion'];
        */
         if (empty($d['id_funcionario_asig']))
            $this->mensaje_error($cont, $funt, 'mini_busca');
         else if (empty($d['id_vehiculo_asig']))
            $this->mensaje_error($cont, $funt, 'mini_busca_veh');
         else if (empty($d['fecha_entrega']))
            $this->mensaje_error($cont, $funt, 'fecha_entrega');
         else if (empty($d['fecha_devolucion']))
            $this->mensaje_error($cont, $funt, 'fecha_devolucion');
          else if ($d['fecha_entrega'] > date('d-m-Y'))
            $this->mensaje_error($cont, $funt, 'fecha_entrega');
         else if ($d['fecha_devolucion'] <= date('d-m-Y'))
            $this->mensaje_error($cont, $funt, 'fecha_devolucion');
         else if ($this->existe($d['id_vehiculo_asig'])){
             $v = $this->Funcionario->find('first', array('conditions' => array("Funcionario.id" => $d['id_funcionario_asig'])));
             $this->set('Error', 'Vehiculo ya Asignado a '.$v['Funcionario']['nombre'].' '.$v['Funcionario']['apellido']);
         }
         else{
             

         if (!isset($d['id'])) {
                $vn = 0;
                $vald = "Nuevo";
                $med = "Nuevo $modelo Registrado exitosamente!!!";
            } else {
                $vn = 1;
                $vald = "Modificar";
                $med = "$modelo Modificado exitosamente!!!";
            }
            $this->data = null;
            $this->$modelo->query('BEGIN  WORK');
            if (isset($d['id']))
                $this->data["$modelo"]['id'] = $d['id'];
            $this->data["$modelo"]['funcionario_id'] = $d['id_funcionario_asig'];
            $this->data["$modelo"]['vehiculo_id'] = $d['id_vehiculo_asig'];
            $this->data["$modelo"]['fecha_desde'] = $d['fecha_entrega'];
            $this->data["$modelo"]['fecha_hasta'] = $d['fecha_devolucion'];
            $this->data["$modelo"]['estado'] = 1;

            if ($this->$modelo->save($this->data)) {

                $id_ = $this->$modelo->id;
                
                $this->data = null;
                $this->data['Funcionario']['id'] = $d['id_funcionario_asig'];
                $this->data['Funcionario']['asignado'] = 1;
                
                if ($this->Funcionario->save($this->data)) {
                    $this->$modelo->query('COMMIT');
                    $this->set('Exito', $med);
                    
                    if ($this->auditoria($id_, $modelo, $vald)) {
                    $this->$modelo->query('COMMIT');
                    $this->set('Exito', $med);
                    } else {
                        $this->$modelo->query('ROLLBACK');
                        $this->set('Error', 'Error Guardando bitacora');
                    }
                    
                } else {
                    $this->$modelo->query('ROLLBACK');
                    $this->set('Error', 'Error Guardando Asignado en Funcionario');
                }
            } else {
                $this->$modelo->query('ROLLBACK');
                $this->set('Error', "Datos del $modelo no fueron guardados");
            }
            $this->script($this->div('l'), $this->div('v')); //(1,0)

            if (empty($d['donde']))
                $this->set('donde', null);
            else
                $this->set('donde', $d['donde']);

            if (empty($d['busq']))
                $this->set('busq', null);
            else
                $this->set('busq', $d['busq']);

            if ($d['busq'] != null)
                $this->buscador($d['donde'], $d['busq']);
            else {
                $this->ftodo('Funcionario','asignado',1);
                $this->listado();
                $this->render('listado');
            }
    }
}
     

      function pdf_funcionario_todo(){
          
          
          
          
      }


    function eliminar($id, $donde = null, $busq = null) {
        $modelo = $this->modelop;
        $campo = "uso_id";
        $modelo_v = "Vehiculo";
        $RS = $this->$modelo_v->find('all', array('conditions' => array("$modelo_v.$campo" => $id), 'order' => "$modelo_v.id"));
        $RS = count($RS);
        if ($RS == 0) {
            $this->$modelo_v->query("DELETE FROM sv_usos  WHERE id=$id");
            $this->set('Exito', "Borrado el Uso con id= " . $id . "");
        } else
            $this->set('Error', "Lo usan $RS Vehiculos");
       

        if ($donde == null)
            $this->set('donde', null);
        else
            $this->set('donde', $donde);

        if ($busq == null)
            $this->set('busq', null);
        else
            $this->set('busq', $busq);


        if ($busq != null)
            $this->buscador($donde, $busq);
        else {
            $this->ftodo($modelo);
            $this->listado();
            $this->render('listado');
        }
    }

}

?>
